/**
@brief Module Coffre <br> Permet l'interraction avec un coffre. Prendre ou mettre des objets dedans.
@author Chay Damien, Dahan Geslain
@file Coffre.h
@version 1.0
@date 2012/11/08
*/


#ifndef COFFRE_H_INCLUDED
#define COFFRE_H_INCLUDED
#include "Objet.h"
#include "Position.h"

/**
\struct Coffre
@brief Module d'interraction avec un Coffre
*/

struct Coffre
{
    typeCoffre typeC;/**< @brief Type de coffre (Petit, Moyen, Grand, Legendaire)*/
    Position positionCoffre; /**< @brief Position du coffre sur la carte*/
    Objet objetCoffre[20]; /**< @brief Taille maximal du coffre, la dimenssion étant régit par son nom*/
    int nombreObjet;/**< @brief Nombre d'objet dans le tableau*/
};

void setTypeCoff(Coffre *Coff, typeCoffre typeC); /**< @brief Mutateur */
void setPositionCoffre(Coffre *Coff, int x, int y); /**< @brief Mutateur */
void setObjetCoffre(Coffre *Coff,Objet Contenu , int); /**< @brief Mutateur */
void setNombreObjet(Coffre *Coff, int nombreObjet); /**< @brief Mutateur */

typeCoffre getTypeCoff(const Coffre *Coff);/**< @brief Accesseur */
Position *getPosition(const Coffre *Coff); /**< @brief Accesseur */
Objet* getObjetCoffre(const Coffre *Coff); /**< @brief Accesseur */
int getNombreObjet(const Coffre *Coff); /**< @brief Accesseur */
Objet* getObjetCoffre(const Coffre *Coff, int i);/**< @brief Accesseur */

/**
@brief Initialisation de Coffre
@param [in,out] Coff
@param [in] type
@param [in] valeur
@return none
*/
void InitCoffre(Coffre *Coff, typeCoffre typeC ,int x, int y, int nombreObjet);

bool TestCoffreVide(Coffre* coff);



#endif // COFFRE_H_INCLUDED
